package com.app.micaihu.receiver;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;

import com.app.micaihu.configure.AppConfigTools;
import com.app.micaihu.configure.UserConfigTools;
import com.app.micaihu.custom.components.downandupload.DownloadUtils;
import com.app.micaihu.custom.view.dialog.ErrorTokenDialog;
import com.app.micaihu.utils.MutileThreadDownload;
import com.app.utils.NetUtils;
import com.app.micaihu.utils.NotifyUtil;
import com.app.utils.util.file.AppFileUtils;
import com.app.utils.util.image.LoadImageUtils;
import com.blankj.utilcode.util.ActivityUtils;

import java.io.File;

/**
 * 所有的广播接收器
 *
 * @author linkai
 * Created by ntop on 15/9/4.
 */
public class NoticeReceiver extends BroadcastReceiver {

    public final String netACTION = "android.net.conn.CONNECTIVITY_CHANGE";

    public final static String TOKENACTION = "com.micai.app.ERROR_TOKEN";//token错误的action

//    public final static String PUSH_ACTION = "com.micai.app.PUSH_ACTION";//PUSH的action

    public final static String DOWNLOAD_PUSH_ACTION = "com.micai.app.DOWNLOAD_PUSH_ACTION";//下载APKPUSH的action

    private Context context;
    private static ErrorTokenDialog errorTokenDialog;//异地登录的弹窗
    private Intent goToDetailIntent;

    @Override
    public void onReceive(Context context, Intent intent) {

        this.context = context;
        if (intent != null) {
            switch (intent.getAction()) {
                case netACTION:////如果是网络变化U
                    setLoadImg();//设置当前网络是否加载图片
                    break;
                case TOKENACTION://token错误的 下线
                    abortBroadcast();
                    try {
                        if (errorTokenDialog == null) {
                            Activity lastActivity = ActivityUtils.getTopActivity();
                            errorTokenDialog = new ErrorTokenDialog(lastActivity);
                        } else {
                            if (errorTokenDialog.getActivity() != ActivityUtils.getTopActivity()) {
                                errorTokenDialog = new ErrorTokenDialog(ActivityUtils.getTopActivity());
                            }
                        }
                        errorTokenDialog.show();
                    } catch (Exception e) {
                    }

                    break;
//                case PUSH_ACTION://推送
//
//                    String articleId = intent.getStringExtra(BaseActivity.PARAMETER1);
//                    String articleType = intent.getStringExtra(BaseActivity.PARAMETER2);
//                    String url = intent.getStringExtra("url");
//                    if (!TextUtils.isEmpty(articleId)
//                            && !TextUtils.isEmpty(articleType)) {
//                        dispathDetailActivity(articleId, articleType,url);
//
//                    }
//                    abortBroadcast();
//                    break;
                case DOWNLOAD_PUSH_ACTION://下载apk
                    String notifyId = intent.getStringExtra("notifyId");
                    if (!TextUtils.isEmpty(notifyId)) {
                        try {
                            int currentProess = NotifyUtil.notitys.get(notifyId);

                            if (currentProess >= 100) {

                                String path = intent.getStringExtra("download_path");
                                //跳转安装文件
                                AppFileUtils.installFile(new File(path), context);
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                    }
                    break;
                case "android.intent.action.PACKAGE_ADDED"://安装应用
                    if (intent.getData() != null) {

                        if (intent.getData() != null) {
                            //安装的包名
                            String schemeSpecificPart = intent.getData().getSchemeSpecificPart();
                            if (!TextUtils.isEmpty(schemeSpecificPart)) {
                                DownloadUtils.getSingleton().installCallBack(schemeSpecificPart);
                                DownloadUtils.DOWN_LOAD_COUNT++;


                            }
                        }

//                        File file = new File(AppConfigTools.APKFLODER + AppConfigTools.SPREARATOR + DownloadUtils.APKNAME_HEADER + intent.getData().getSchemeSpecificPart() + ".apk");
//                        if(file != null && file.exists() && file.isFile()){
//                            //游戏小红点你计数
//                            DownloadUtils.DOWN_LOAD_COUNT++;
//
//
//                            boolean delete = file.delete();
//                            if(delete){
//                                ToastUtils.makeText("已删除安装包");
//                            }
//                            StatService.onEvent(AppApplication.getInstance(), "065", "安装游戏成功", 1);
//                        }
                    }

                case "android.intent.action.PACKAGE_REMOVED"://卸载应用
                {
                    AppConfigTools.installValue++;//值变化
                    break;
                }
            }
        }

    }


    /**
     * 分配当前intent 该跳往哪个界面
     *
     * @param articleId
     * @param articleType
     */
//    private void dispathDetailActivity(String articleId, String articleType,String url) {
//        try{
//            StatService.onEvent(context, "027", "友盟推送点击", 1);// 统计的点击的次数
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        if (goToDetailIntent == null) {
//            goToDetailIntent = new Intent();
//        }
//        goToDetailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//        goToDetailIntent.putExtra(BaseActivity.PARAMETER1, articleId);
//        goToDetailIntent.putExtra(BaseActivity.PARAMETER2, articleType);
//        switch (articleType) {
//            //适配所有文章
//            case TypeConstant.NEWS_NORMAL:
//            case TypeConstant.NEWS_SHOP:
//            case TypeConstant.NEWS_WEB:
//                goToDetailIntent.setClass(context, NewsDetailActivity.class);
//                StatService.onEvent(context, "054", "新闻", 1);// 统计的点击的次数
//                break;
//            case TypeConstant.NEWS_SHOP_WEB://电商网页文章
//                goToDetailIntent.setClass(context, WebActivity.class);
//                goToDetailIntent.putExtra("url", articleId);
//                StatService.onEvent(context, "054", "电商软文", 1);// 统计的点击的次数
//                break;
//            //适配图库
//            case TypeConstant.PIC_NORMAL:
//                goToDetailIntent.setClass(context, ImageDetailActivity.class);
//                StatService.onEvent(context, "054", "图库", 1);// 统计的点击的次数
//                break;
//            //适配图库轻专题
//            case TypeConstant.PIC_TOPIC:
//                //待开发
//                break;
//            //普通视频
//            case TypeConstant.VIDEO_NORMAL:
//            case TypeConstant.VIDEO_ORIGINAL:    //原创视频
//                goToDetailIntent.setClass(context, VideoDetailActivity.class);
//                StatService.onEvent(context, "054", "视频", 1);// 统计的点击的次数
//                break;
//
////            case TypeConstant.TOPIC_POST://话题
////                goToDetailIntent.setClass(context, TopicDetailActivity.class);
////                StatService.onEvent(context, "054", "话题", 1);// 统计的点击的次数
////                break;
//            case TypeConstant.POST_2052://话题
//                goToDetailIntent.setClass(context, PostDetailActivity.class);
//                StatService.onEvent(context, "054", "话题", 1);// 统计的点击的次数
//                break;
//            case TypeConstant.NEWS_TOPIC://新闻专辑
//                goToDetailIntent.setClass(context, NewsTopicsActivity.class);
//                StatService.onEvent(context, "054", "新闻专辑", 1);// 统计的点击的次数
//                break;
//
//            case TypeConstant.PUSH_COMMENT://推送的评论
//                goToDetailIntent.setClass(context, MainActivity.class);
//                StatService.onEvent(context, "054", "评论", 1);// 统计的点击的次数
//                break;
//
//            case TypeConstant.ONLY_URL://推送 前文webActivity
//                goToDetailIntent.setClass(context, WebActivity.class);
//                goToDetailIntent.putExtra("url",url);
//                StatService.onEvent(context, "054", "直接打开URL", 1);// 统计的点击的次数
//                break;
//        }
//
//        if (!AppManager.getAppManager().isHaveActivity(MainActivity.class)) {//当前栈中没有MainActivity,则去开屏
//            goToDetailIntent.putExtra(BaseActivity.PARAMETER2, articleType);
//            goToDetailIntent.setClass(context, LunchActivity.class);
//        }
//
//        if (goToDetailIntent.getComponent() != null) {
//            AppApplication.getInstance().startActivity(goToDetailIntent);
//        }
//
//
//    }


    /**
     * 设置当前网络是否加载
     */
    private void setLoadImg() {
        int netType = NetUtils.getNetworkType();//获取当前网络类型
        //配置图片是否继续加载
        if (netType == NetUtils.NETTYPE_WIFI) {
            //当前网络为wifi 允许加载图片
            AppConfigTools.isLoadImage = true;
            LoadImageUtils.getInstance().setIsLoadImg(true);
        } else if (netType == NetUtils.NETTYPE_CM && UserConfigTools.isUseWifi) {
            //当前网络为移动网络并且开启了仅wifi加载图片  不允许加载图片
            LoadImageUtils.getInstance().setIsLoadImg(false);
            AppConfigTools.isLoadImage = false;
        } else if (netType == NetUtils.NETTYPE_CM && !UserConfigTools.isUseWifi) {
            //当前网络为移动网络并且关闭了仅wifi加载图片  允许加载图片
            LoadImageUtils.getInstance().setIsLoadImg(true);
            AppConfigTools.isLoadImage = true;
        } else {
            LoadImageUtils.getInstance().setIsLoadImg(true);
            AppConfigTools.isLoadImage = true;
        }
//        //配置下载是否继续
//        NotifyUtil.showNetDialog(netType);
        //关闭静默下载
        if (netType == NetUtils.NETTYPE_CM) {
            //如果为移动网络则关闭进程
            MutileThreadDownload.closeDownList();
        }
    }


}
